Open Reusable Object Models
نویسندگان
چکیده
Programming languages often hide their implementation at a level of abstraction that is inaccessible to programmers. Decisions and tradeoffs made by the language designer at this level (single vs. multiple inheritance, mixins vs. Traits, dynamic dispatch vs. static case analysis, etc.) cannot be repaired easily by the programmer when they prove inconvenient or inadequate. The artificial distinction between implementation language and end-user language can be eliminated by implementing the language using only end-user objects and messages, making the implementation accessible for arbitrary modification by programmers. We show that three object types and five methods are sufficient to bootstrap an extensible object model and messaging semantics that are described entirely in terms of those same objects and messages. Raising the implementation to the programmers’ level lets them design and control their own implementation mechanisms in which to express concise solutions and frees the original language designer from ever having to say “I’m sorry”.
منابع مشابه
Open Reuse of Component Designs in OPM/We
As system complexity has increased, so has interest in reusing software components in early development phases. While most current modeling methods support design of generic parameterized frameworks or patterns and weaving them into specific models, they do not support open reuse, i.e., the ability to develop partially specified components and refine them in the target application. We introduce...
متن کاملNOT DISTRIBUTE Open , reusable object models
Code reuse between different object model implementations is rare. Most object models cannot easily be shared because they are implemented at a lower level of abstraction than that of the language in which they are designed to operate, rendering their semantics opaque and unavailable for modification by end users. We show that three object types and four methods are sufficient to bootstrap an o...
متن کاملVisual Composition of Software Applications
Open applications can be viewed as compositions of reusable and configurable components. We introduce visual composition as a way of constructing applications from plug-compatible software components. After presenting related work, we describe an object-oriented framework for visual composition that supports open system development through the notion of domain-specific composition models. We il...
متن کاملIntroduction to Object-oriented Modeling and Simulation with Modelica Using the Openmodelica Environment
Modelica is a modern, strongly typed, declarative, equation-based, and object-oriented language for modeling and simulation of complex systems. Major features are: ease of use, visual design of models with combination of lego-like predefined model building blocks, ability to define model libraries with reusable components, support for modeling and simulation of complex applications involving pa...
متن کاملReusable Object-Oriented Design
Software design is a diicult creative task learnt from long experience. Reusable object-oriented design aims to describe and classify designs and design fragments so that designers may learn from other peoples' experience. Thus, it provides leverage for the design process. This paper surveys the eld, discussing software architectures, application frameworks, design patterns, and the design of c...
متن کاملRule Patterns for Designing Active Object-Oriented Database Applications
Active object-oriented database systems (AOODBSs) have become widely recognized for smoothly capturing the context-dependent and time-dependent organizational knowledge of large enterprises, also known as business policies. However, not least since the remarkable panel at the RIDE'94 workshop on active database systems [Wido94] the design issue of AOODBS applications is known as one of the most...
متن کامل